package com.platform.common.utils;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.PatternPool;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
 * @Description: 公共工具类
 * @author: yuanlai
 * @CreateTime: 2022/5/16 20:08
 */
@Slf4j
public class CommonUtil {

    public static final JSONConfig JSON_CONFIG = new JSONConfig();

    static {
        JSON_CONFIG.setIgnoreNullValue(false);
    }

    private static final String fixSecret = "6f3773a4c19013fab896bba1afb6db9a";

    /**
     * 获取当前密钥
     * @return 结果
     */
    public static String getCurrentSecret(){
        String now = DateUtil.format(DateUtil.date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN);
        return SecureUtil.md5(fixSecret + now);
    }

    /**
     * 正则截取出中文字符
     *
     * @param str str
     * @return {@link String}
     */
    public static String reChinese(String str){
        if(StrUtil.isBlankOrUndefined(str)) {
            return StrUtil.EMPTY;
        }
        List<String> allGroup0 = ReUtil.findAllGroup0(PatternPool.CHINESE, str);
        if(CollUtil.isNotEmpty(allGroup0)) {
            return String.join(StrUtil.EMPTY,CollUtil.removeBlank(allGroup0));
        }
        return StrUtil.EMPTY;
    }

    /**
     * hutool转str不忽略空置
     * @param obj
     * @return
     */
    public static String toJsonStr(Object obj){
        return JSONUtil.toJsonStr(obj);
        //todo pjj 待处理
        //return JSONUtil.toJsonStr(obj, JSON_CONFIG);
    }
}
